// pages/home/home.js
import { get } from 'mobx-miniprogram'
import {createStoreBindings} from 'mobx-miniprogram-bindings'
import {store} from '../../store/sotre'

import {showToast} from '../../utils/toast'

const app = getApp()

Page({
  /**
   * 页面的初始数据
   */
  data: {
    navBar: false, // tabbar显示与隐藏
    slideShow: {}, // 轮播
    cameraman: {}, //摄影师
    worksShow: {}, // 作品展示
    recommend: {}, // 作品展示内的推荐作品模块
    hotSale: {}, // 热卖内容
    isShowDia: true, // 显示加载
    showLogin: false, // 注册/登录面板
    nickname: app.globalData.userInfo.nickname,
    privacy: false // 隐私协议面板
  },
  // 页面滚动事件
  onPageScroll(e){
    if(e.scrollTop > 50){
      this.setData({navBar: true})
    }else{
      this.setData({navBar: false})
    }
  },
  // 获取首页所需数据
  async getHomeData(){
    try{
      let obj = {}
      // 获取轮播/摄影师图片
      const res1 = await wx.cloud.callFunction({
        name: 'get_index_data'
      })
      // 获取作品展示数据
      const res2 = await wx.cloud.callFunction({
        name: 'get_works_data'
      })
      res2.result.worksShow.data.forEach(item => {
        item.like = this.formatNumber(item.like)
        item.watch = this.formatNumber(item.watch)
      })

      return obj = Object.assign(res1.result, res2.result)
    }catch(err){
      console.log('获取数据失败', err);
    }
  },
  // 格式化点赞数
  formatNumber(num){
    if(num < 10000 && num >= 1){
      return num
    }else if(num >= 10000 && num <= 100000){
      return `${Math.floor(num /= 10000)}万+`
    }else if(num < 1){
      return ''
    }else{
      return '10万+'
    }
  },
  // 跳转商城页
  goList(){
    this.updataActive(1)
    wx.switchTab({
      url: '../../pages/list/list',
    })
  },
  // 跳转商品详情
  goGoods(e){
    console.log(e.currentTarget.dataset.options);
    wx.navigateTo({
      url: `../../subpkg_goods_detail/pages/detail?goods_id=${e.currentTarget.dataset.options}`,
    })
  },

  // 注册/登录
  login(){
    wx.requirePrivacyAuthorize({
      success: () => {
        const userData = app.globalData.isUserInfo
        if(userData){
          this.updataActive(3)
          wx.switchTab({
            url: '../../pages/user/user',
          })
          return
        }
        this.setData({ showLogin: true })
      },
      fail: () => {
        this.setData({ showLogin: false })
      }
    })
  },
  updateUser(){
    this.setData({
      nickname: app.globalData.userInfo.nickname
    })
  },

  // 消息弹窗
  messageDia(){
    // showToast('开发中......')
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.storeBindings = createStoreBindings(this, {
      store,
      fields: ['active'],
      actions: ['updataActive']
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady () {
    this.getHomeData().then(res => {
      this.setData({
        slideShow: res.slideShow.data,
        cameraman: res.cameraman.data,
        hotSale: res.hotSale.data,
        worksShow: res.worksShow.data,
        recommend: res.recommend.data,
        isShowDia: false,
        nickname: app.globalData.userInfo.nickname
      })
    })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.setData({ nickname: app.globalData.userInfo.nickname })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})